package config.sttotal;

import common.Network;

import java.util.HashSet;

public class genConfigst {
    public static void main(String[] args) {
        Network nc = new Network();
//        nc.addTopology("bbra_rtr","te7/3","goza_rtr","te2/1");
        nc.addTopology("bbra_rtr","te7/3","pozb_rtr","te3/1");
//        nc.addTopology("bbra_rtr","te1/3","bozb_rtr","te3/1");
//        nc.addTopology("bbra_rtr","te1/3","yozb_rtr","te2/1");
        nc.addTopology("bbra_rtr","te1/3","roza_rtr","te2/1");
//        nc.addTopology("bbra_rtr","te1/4","boza_rtr","te2/1");
        nc.addTopology("bbra_rtr","te1/4","rozb_rtr","te3/1");
//        nc.addTopology("bbra_rtr","te6/1","gozb_rtr","te3/1");
//        nc.addTopology("bbra_rtr","te6/1","cozb_rtr","te3/1");
//        nc.addTopology("bbra_rtr","te6/1","poza_rtr","te2/1");
        nc.addTopology("bbra_rtr","te6/1","soza_rtr","te2/1");
//        nc.addTopology("bbra_rtr","te7/2","coza_rtr","te2/1");
        nc.addTopology("bbra_rtr","te7/2","sozb_rtr","te3/1");
        nc.addTopology("bbra_rtr","te6/3","yoza_rtr","te1/3");
        nc.addTopology("bbra_rtr","te7/1","bbrb_rtr","te7/1");
        nc.addTopology("bbrb_rtr","te7/4","yoza_rtr","te7/1");
//        nc.addTopology("bbrb_rtr","te1/1","goza_rtr","te3/1");
        nc.addTopology("bbrb_rtr","te1/1","pozb_rtr","te2/1");
//        nc.addTopology("bbrb_rtr","te6/3","bozb_rtr","te2/1");
//        nc.addTopology("bbrb_rtr","te6/3","roza_rtr","te3/1");
        nc.addTopology("bbrb_rtr","te6/3","yozb_rtr","te1/1");
//        nc.addTopology("bbrb_rtr","te1/3","boza_rtr","te3/1");
        nc.addTopology("bbrb_rtr","te1/3","rozb_rtr","te2/1");
//        nc.addTopology("bbrb_rtr","te7/2","gozb_rtr","te2/1");
//        nc.addTopology("bbrb_rtr","te7/2","cozb_rtr","te2/1");
//        nc.addTopology("bbrb_rtr","te7/2","poza_rtr","te3/1");
        nc.addTopology("bbrb_rtr","te7/2","soza_rtr","te3/1");
//        nc.addTopology("bbrb_rtr","te6/1","coza_rtr","te3/1");
        nc.addTopology("bbrb_rtr","te6/1","sozb_rtr","te2/1");
//        nc.addTopology("boza_rtr","te2/3","bozb_rtr","te2/3");
//        nc.addTopology("coza_rtr","te2/3","cozb_rtr","te2/3");
//        nc.addTopology("goza_rtr","te2/3","gozb_rtr","te2/3");
//        nc.addTopology("poza_rtr","te2/3","pozb_rtr","te2/3");
//        nc.addTopology("roza_rtr","te2/3","rozb_rtr","te2/3");
        nc.addTopology("soza_rtr","te2/3","sozb_rtr","te2/3");
        nc.addTopology("yoza_rtr","te1/1","yozb_rtr","te1/3");
        nc.addTopology("yoza_rtr","te1/2","yozb_rtr","te1/2");

        nc.addTopology("bbra_rtr", "virtual", "v", "v1");
        nc.addTopology("bbrb_rtr", "virtual", "v", "v2");
        nc.addTopology("boza_rtr", "virtual", "v", "v16");
        nc.addTopology("bozb_rtr", "virtual", "v", "v3");
        nc.addTopology("coza_rtr", "virtual", "v", "v4");
        nc.addTopology("cozb_rtr", "virtual", "v", "v5");
        nc.addTopology("goza_rtr", "virtual", "v", "v6");
        nc.addTopology("gozb_rtr", "virtual", "v", "v7");
        nc.addTopology("poza_rtr", "virtual", "v", "v8");
        nc.addTopology("pozb_rtr", "virtual", "v", "v9");
        nc.addTopology("roza_rtr", "virtual", "v", "v10");
        nc.addTopology("rozb_rtr", "virtual", "v", "v11");
        nc.addTopology("sozb_rtr", "virtual", "v", "v12");
        nc.addTopology("soza_rtr", "virtual", "v", "v13");
        nc.addTopology("yozb_rtr", "virtual", "v", "v14");
        nc.addTopology("yoza_rtr", "virtual", "v", "v15");
        String s = "bbra_rtr";
        HashSet<String> waypoint;
        HashSet<String> start, end;
        start = new HashSet<>();
        start.add(s);

        end = new HashSet<>();
        end.add("v");
        waypoint = new HashSet<>();
        HashSet<Integer> length = new HashSet<>();

        nc.addReqByNodes(">=1 match S.*W.*D", end, start, waypoint, length);
        nc.generateConfig("config/sttotal/"+s+"/");

    }
}
